#include<bits/stdc++.h>
#define sd(n) scanf("%d",&n) 
#define sld(n) scanf("%lld",&n)
#define pd(n) printf("%d", (n))
#define pld(n) printf("%lld", n)
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define fi first
#define se second
const int N=2e5;
#define INF 0x7fffffff
typedef long long int ll;
using namespace std;
//----------------------------------------------------------------------------//
int n,m;//给定两数,1->n全排不能同时出现这两个数
void solve()
{
	sd(n);sd(m);
	vector<vector<int>> v(n+1);
	while(m--)
	{
		int x,y;
		sd(x);sd(y);
		if(x<y) swap(x,y);//找每个不是朋友的最后的位置
		v[x].emplace_back(y);//让大的连小的边,便于找到不是i的朋友的比i小的最大的那个
	}
	ll ans=0;
	int no_friend=0;
	for(int i=1;i<=n;i++)
	{
		for(auto&k:v[i]) no_friend=max(no_friend,k);//找这个边连的不比他大的最大的非朋友
		ans+=i-no_friend;
	}
	pld(ans);
	puts("");
}

int main()
{
	int T;
	sd(T);
	while (T--)
	{
		solve();
	}
	return 0;
}